今天要來練習的是
二進制轉十進制的練習
程式碼:
#include<iostream>
using namespace std;
int main()
{
char s[8], dec[8];
while( cout <<"Input four digit binary: ",cin >> s )
{
if(s[0] == 49){
dec[0] = 8;
}else{
dec[0] = 0;
}
if(s[1] == 49){
dec[1] = 4;
}else{
dec[1] = 0;
}
if(s[2] == 49){
dec[2] = 2;
}else{
dec[2] = 0;
}
if(s[3] == 49){
dec[3] = 1;
}else{
dec[3] = 0;
}
cout << "Decimal is " << dec[0]+dec[1]+dec[2]+dec[3];
endl(cout);
endl(cout);
}
return 0;
}
執行結果:
Input four digit binary: 0000
Decimal is 0
Input four digit binary: 0001
Decimal is 1
Input four digit binary: 0010
Decimal is 2
Input four digit binary: 0011
Decimal is 3
Input four digit binary: 0100
Decimal is 4
Input four digit binary: 0101
Decimal is 5
--------------------------------
Process exited after 0.08787 seconds with return value 0
請按任意鍵繼續...
程式碼解釋:
◆宣告陣列變數
char s[8] :用來儲存cin讀取鍵盤的值
char dec[8]:用來暫存二進制換算十進制的值
◆使用while迴圈
使用while迴圈讓程式重複執行
判斷值是一直重複讀取鍵盤輸入的值
◆使用if-else判斷式
這邊要由二進制換算成十進制
就要利用指數加權法
拿1101舉例
1101=
=8+0+2+1
=11
了解以上原理
就利用if-else判斷式來判斷
舉1011的例子來說
先判斷輸入的s[0]是否為1
這邊是用char字元型態的陣列
1的ASCII為49
因此判斷式為s[0] == 49
則進入if
將值為8=2的3次方存入陣列dec[]裡面
其它三個以此類推
判斷式為s[1] == 49
將值為4=2的2次方存入陣列dec[]裡面
判斷式為s[2] == 49
將值為2=2的1次方存入陣列dec[]裡面
判斷式為s[3] == 49
將值為1=2的0次方存入陣列dec[]裡面
最後再將陣列dec[]所有的值加起來
就是十進制了
以上就練習到這邊啦~
-End-